Data shuffling is a process of exchanging, re-distributing, or re-partitioning data based on pre-defined rules among nodes in a distributed data processing system. Data shuffling is a key component in modern data analytics and high-performance computing (HPC). For example, data shuffling is a key step in the implementation of MapReduce processing frameworks. Non-limiting examples of MapReduce processing frameworks include Apache™ Hadoop® and Apache™ Spark™ (The Apache Software Foundation). In this context, data shuffling is a process performed to transfer data from a mapper node to a reducer node by redistributing data in M*N ways based on output keys produced by the mapper node, such that all data belonging to one key is preferably located on the same node. That is, data shuffling acts as a bridge between the map phase and the reduce phase of a MapReduce processing framework. However, performing data shuffling on large datasets impacts the overall performance of a distributed data processing system.